package com.second.common.pojo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;


/**
* 讲师
* @TableName edu_teacher
*/
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "Teacher对象",description="教师表")
@TableName("edu_teacher")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Teacher implements Serializable {

    /**
    * 讲师ID
    */
    @ApiModelProperty("讲师ID")
    private String id;
    /**
    * 讲师姓名
    */
    @ApiModelProperty("讲师姓名")
    private String name;
    /**
    * 讲师简介
    */
    @ApiModelProperty("讲师简介")
    private String intro;
    /**
    * 讲师资历,一句话说明讲师
    */
//    @Size(max= 500,message="编码长度不能超过500")
//    @ApiModelProperty("讲师资历,一句话说明讲师")
//    @Length(max= 500,message="编码长度不能超过500")
    private String career;
    /**
    * 头衔 0高级讲师 1首席讲师
    */
//    @NotNull(message="[头衔 0高级讲师 1首席讲师]不能为空")
    @ApiModelProperty("头衔 0高级讲师 1首席讲师")
    private Object level;
    /**
    * 讲师头像
    */
//    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("讲师头像")
//    @Length(max= 255,message="编码长度不能超过255")
    private String avatar;
    /**
    * 排序
    */
//    @NotNull(message="[排序]不能为空")
    @ApiModelProperty("排序")
    private Object sort;
    /**
    * 逻辑删除 1（true）已删除， 0（false）未删除
    */
//    @NotNull(message="[逻辑删除 1（true）已删除， 0（false）未删除]不能为空")
    @ApiModelProperty("逻辑删除 1（true）已删除， 0（false）未删除")
    private Integer isDeleted;
    /**
    * 创建时间
    */
//    @NotNull(message="[创建时间]不能为空")
    @ApiModelProperty("创建时间")
    private LocalDateTime gmtCreate;
    /**
    * 更新时间
    */
//    @NotNull(message="[更新时间]不能为空")
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime gmtModified;
    /**
    * 讲师手机
    */
//    @NotBlank(message="[讲师手机]不能为空")
//    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("讲师手机")
//    @Length(max= 255,message="编码长度不能超过255")
    private String mobile;
    /**
    * 讲师邮箱
    */
//    @NotBlank(message="[讲师邮箱]不能为空")
//    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("讲师邮箱")
//    @Length(max= 255,message="编码长度不能超过255")
    private String email;
    /**
    * 讲师状态  0 正常 ，1 禁用
    */
//    @NotBlank(message="[讲师状态  0 正常 ，1 禁用]不能为空")
//    @Size(max= 10,message="编码长度不能超过10")
    @ApiModelProperty("讲师状态  0 正常 ，1 禁用")
//    @Length(max= 10,message="编码长度不能超过10")
    private String status;
    @TableField(exist = false)
    private String checkStatus;




}
